#include<iostream>

using namespace std;
const int N = 1010;
int a[N][N];
int r,max1,ret,tmp;
void dfs(int n)
{
	if(n == r)
	{
		max1 = max(ret,max1);
		return;
	}
	for(int i = 1; i <= n; i++)
	{
		
		//if(ret + a[n][i] < max1) continue;
		for(int j = 0; j <= 1; j++)
		{
			ret += a[n + 1][i + j];
			dfs(n + 1);
			ret -= a[n + 1][i + j];
		}
		ret -= a[n][i];
		ret += a[n][i + 1];
	}
}
int main()
{
	cin >> r;
	for(int i = 1; i <= r; i++)
	{
		for(int j = 1; j <= i; j++)
		{
			cin >> a[i][j];
		}
	}
	max1 = ret = a[1][1]; 
	dfs(1);
	cout << max1;
	return 0;
} 
